package com.wushijia.datastructure.tree;

public interface BinaryTTree<E> {

  boolean isEmpty();

  BinaryNode<E> getRoot();

  BinaryNode<E> getParent(BinaryNode<E> node);

  BinaryNode<E> getLeftChild(BinaryNode<E> node);

  BinaryNode<E> getRightChild(BinaryNode<E> node);

  void preOrder();

  void inOrder();

  void postOrder();

  void levelOrder();

  BinaryNode<E> search(E element);

  void insert(BinaryNode<E> p, E element, String child);

  void remove(BinaryNode<E> p, String child);

  void clear();

}
